package com.eastfair.home.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.home.dto.ReportServiceAuditDTO;
import com.eastfair.home.dto.ReportSpaceAuditDTO;
import com.eastfair.home.entity.ReportServiceAudit;
import com.eastfair.home.entity.ReportSpaceAudit;
import com.eastfair.home.vo.ReportEarnestMoneyAuditVO;
import com.eastfair.home.vo.ReportServiceAuditVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 报馆服务审核记录
 * </p>
 *
 * @author linan
 * @date 2022-08-08
 */
public interface ReportServiceAuditService extends SuperService<ReportServiceAudit> {

    /**
     * 保存预订服务审核数据
     * @param reportServiceAuditList reportServiceAuditList
     * @return Boolean
     */
    Boolean saveReportServiceAudit(List<ReportServiceAuditDTO> reportServiceAuditList);

    /**
     * 保存预订服务审核数据
     *
     * @param reportSpaceAuditDTO the report space audit dto
     * @param reportSpaceAudit    the report space audit
     * @return the boolean
     */
    boolean saveReportServiceAudit(ReportSpaceAuditDTO reportSpaceAuditDTO, ReportSpaceAudit reportSpaceAudit);

    /**
     * 提交服务审核
     * @param reportSpaceAuditDTO reportSpaceAuditDTO
     * @return Boolean
     */
    Boolean submitServiceAudit(ReportSpaceAuditDTO reportSpaceAuditDTO);

    /**
     * 更新未生成订单的报馆服务审核记录
     * @param reportServiceAuditDTOS reportServiceAuditDTOS
     * @return Boolean
     */
    Boolean updateByItem(List<ReportServiceAuditDTO> reportServiceAuditDTOS);

    /**
     * 查询服务审核列表
     * @param reportSpaceAuditDTO reportSpaceAuditDTO
     * @return List<ReportServiceAuditVO>
     */
    List<ReportServiceAuditVO> queryReportServiceAuditList(ReportSpaceAuditDTO reportSpaceAuditDTO);

    /**
     * 保存服务审核
     * @param reportServiceAudits reportServiceAudits
     * @return Boolean
     */
    Boolean saveServiceAudit(List<ReportServiceAuditDTO> reportServiceAudits);

    /**
     * 删除当前报馆服务审核
     * @param reportSpaceId reportSpaceId
     * @return Boolean
     */
    Boolean delServiceAuditByReportSpaceId(Long reportSpaceId);

    /**
     * 查询保证金审核列表
     * @param reportSpaceAuditDTO reportSpaceAuditDTO
     * @return ReportEarnestMoneyAuditVO
     */
    ReportEarnestMoneyAuditVO queryReportEarnestMoneyAudit(ReportSpaceAuditDTO reportSpaceAuditDTO);
}
